UFLHTS.DLL contains 3 functions our company, Heritage Technology Solutions, wrote while we were developing some custom reports for a client recently. If they are helpful, feel free to use them in your own reports. Functions: fmtph(string): Pass this function a string of straight numbers and it will return a formatted string with the following attributes: <10 Characters: (i.e. 310) Nothing 10 Characters: (i.e. 3103747748) (310) 374-7748 11-15 Charcters: (i.e. 310374774812345) (310) 374-7748 Ext-12345 fmtZip(string): Pass this function a string of straight numbers and it will return a formatted string with the following attributes: <5 Characters: (i.e. 9027) Nothing >5 Characters: (i.e. 902789876) 90278-9876 bAND(integer,integer) Pass this function 2 integers and it will return a boolean value indicating the bitwise AND result. We use this function to check the state of indivdual components which make up the integer value as returned by Sheriden's Checkboxes and many other VBX's. For Example: [X] Red [ ] Red [X] Red [ ] Blue [X] Blue [ ] Blue [ ] Yellow [ ] Yellow [X] Yellow chkBox.value = 1 2 5 So to check to see if a particular Box is checked we use the bAND function As Follows: (Keep in mind the first check box has a value of 1, the second 2, the third 4, etc...) Isred = bAND(chkBox.value,1) returns: True False True To use these functions all you have to do is copy the UFLHTS.dll file into the same directory as your CRW.EXE file. When you create a new formula you will automatically see these functions under "Additional Functions" in the functions window. About US: Heritage Technology Solutions provides Visual Basic Application Development for clients of all sizes. If you would like us to help you with a project, or even write a custom Crystal Report Library like the ones above feel free to contact us. Heritage Technology Solutions 1210 Goodman Ave Redondo Beach CA 90277 310-374-7748 310-372-5808 FAX E-mail: joelyons@netcom.com Have Fun, Joe Lyons President